package com.tuliyou.common.handler;

import com.tuliyou.common.util.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 全局异常拦截处理器
 */
@Slf4j
@ControllerAdvice // 拦截所有@Controller和@RestController
public class GlobalExceptionHandler {

    /**
     * 处理系统异常（如NullPointerException、IOExcepiton等）
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result<Void> handleSystemException(Exception e) {
        log.error("系统异常", e); // 打印错误日志（包含堆栈，便于排查）
        // 系统异常不暴露详细信息给前端，返回通用提示
        return Result.error(500, "服务器内部错误，请稍后重试");
    }

}